草庐IT

es 性能优化

全部标签

javascript - "..."在 Javascript (ES6) 中意味着什么?

这个问题在这里已经有了答案:JavascriptPropertywiththreedots(...)(5个答案)关闭5年前。我正在学习Redux、React和ES6。我已经用JS开发了,但是ES6的这个新世界让我感到惊讶,它有很多新东西,比如“=>”来声明箭头函数等等。然而,在这个新的Redux研究中,我在代码中间遇到了...。下面我举个例子:import{combineReducers,createStore}from'redux'constuserReducer=(state={},action)=>{switch(action.type){case'CHANGE_NAME':st

JavaScript ES6 - promise 解决和事件之间可能存在竞争条件?

是否可以在promise解析和promise等待返回之间执行用户代码?functiona(){returnnewPromise(resolve=>{setTimeout(()=>{//Betweenhere...resolve()},1000))}}asyncfunctionb(){awaita()//...andhere?}规范是否强制立即调用Promise回调?我想知道2点之间的虚拟机是否可以处理一个事件,这可能会导致副作用。 最佳答案 不,它不强制立即调用。Thespec在解决一个promise时会经历许多步骤,其中之一是:P

javascript - 在 Javascript ES6 的子类中扩展父类方法

我想在父类中扩展子类的特定方法的功能。我还在习惯ES6中的OOP,所以我不确定这是否可行或违反规则。我正在寻找这样的东西:classParent{constructor(elem){this.elem=elem;elem.addEventListener((e)=>{this.doSomething(e);});}doSomething(e){console.log('doingsomething',e);}}classChildextendsParent{constructor(elem){//setsupthis.elem,eventlistener,andinitialdefin

javascript - react ES6 : Get selected value in dropdown list using semantic UI

给定以下数据,我如何获取鸟类名称并将其推送(使用添加按钮)到一个新数组以显示在另一个div中(使用reactes6)?所以基本上我希望用户从语义下拉列表中单击一只鸟并将其显示在不同的div中,例如如下所示。这可能很简单,但是当我使用语义元素时,我似乎找不到解决方法。我需要使用onChange吗?我需要在我正在导出的类中执行此操作(react)(只是没有显示类/构造函数/状态定义)Howcanidisplay'Bird_Name'here?addClick=()=>{}const{Button,Container,Divider,Dropdown,Header,Message,Segme

javascript - ES2015 类阻止设置原型(prototype)

我发现ES2015类阻止设置(重新定义)它们的原型(prototype)。人们经常声称ES2015类只是ES5构造函数和基于原型(prototype)的继承之上的“语法糖”。但这是行为上的差异......这种行为是ES2015规范的一部分吗?我没有找到关于此的任何文档......以下示例说明了差异:functionPet(){}Pet.prototype.eat=()=>{console.log('Petiseating...');}Pet.prototype={eat:function(){console.log('PetisREALLYeating...')}};constpet=

javascript - JavaScript ES6 (<<) 中的按位左移是否在 63 位以上循环?

我对JS(ES6)中的然而,根据经验,我注意到在V8和JSC中,如果我们移动64位或更多位,设置位似乎会突然重新出现。(255"11111111"这与我的预期相反,我的预期是更大的移位将无限期地只在右侧产生零。我没有立即在 最佳答案 规范(Section12.8.3.1)指定要移位的位数被屏蔽:ShiftExpression:ShiftExpressionLetlrefbetheresultofevaluatingShiftExpression.LetlvalbeGetValue(lref).ReturnIfAbrupt(lval)

javascript - 在向用户显示输出的同时准确测量 Javascript 函数的性能

正如您在下面的代码中看到的,当我增加字符串的大小时,它会导致0毫秒的差异。此外,随着字符串数量的增加,会出现不一致的情况。我是不是做错了什么?letstringIn=document.getElementById('str');letbutton=document.querySelector('button');button.addEventListener('click',()=>{lett1=performance.now();functionToTest(stringIn.value);lett2=performance.now();console.log(`timetakeni

JavaScript 内部函数和性能

定义clousre函数与全局范围函数对运行时和内存有何影响?functiona(){//functions(optionA)}//functions(optionB)我知道选项A具有功能作用域(闭包)的优势...假设我有1000个函数,这对运行时间和内存有何影响? 最佳答案 如果您使用内部函数,运行时必须为将来的任何调用分配和保存它们的上下文,并且每次调用包含它们的函数时都会发生这种情况。因此,很容易想象声明一个内部函数就像构造一个对象一样,其成员只是该函数周围封闭范围内的变量。如果您不经常这样做,这可能并没有那么糟糕,因为内存量与

javascript - 优化 JavaScript 加载的最佳实践

我在网上阅读了几篇关于优化javascript加载的文章。我得到的几个关键点是最小化脚本文件(http请求)的数量,缩小并在服务器上启用gzip。目前,我这边所做的是缩小所有javascript文件,并且也可以简单地启用gzip。第1部分)我的问题是我有大约20个javascript文件,其中一个common.js具有所有核心功能。除此之外,每个页面都会加载至少一个实现该页面功能的其他文件。解决方案1,是将所有脚本合并到一个大脚本文件中,并为每个客户端加载一次,这似乎是其他人正在做的。我猜YUI或者JSMin可以用来压缩,所以我应该手动合并文件?解决方案2,当需要一个必需的功能时延迟加

javascript - 检测在不可见和在视口(viewport)外时是否对canvas/css3动画进行了优化

我假设使用HTML5中的所有这些硬件加速动画,实际上不会渲染在视口(viewport)之外运行的动画。我希望能够检测到是否正在发生。我尝试在每秒移动100px的对象上循环使用webkitCSSMatrix来尝试确定每个刻度线移动了多少像素,但是如果我将动画移出视线则没有区别。有任何想法吗? 最佳答案 您可以使用单独的计时器测试来查看伪经验方面在外部和内部绘制的对象之间的差异(计时器实际上并不能证明任何东西,但可以为您提供强大的indisium)。但是,了解Canvas的工作原理也可以为您提供坚实的指导。例如,Canvas是一个简单的